<?php 
/**
 * 货物列表控制器
 * @author 妮妮 <962611024@qq.com>
 */
class GoodsListController extends Controller{
	private $model;
	public function __init(){
		parent::__init();
		$this->model=K('GoodsList');
	}
	
	
    /**
     * 默认访问方法
     */
    public function index(){
    	//通过get参数获取到
    	$gid=Q('get.gid',0,'intval');
		$tid=Q('get.tid',0,'intval');
		//1找到头部循环的规格*******************************************************
		$specAll=M('type_attr')->where("taclass=1 AND tid={$tid}")->all();
		//p($specAll);
		foreach ($specAll as $k => $v) {
			$taid=$v['taid'];
			//重新获取下拉框需要的东西，给压一个下标   找到商品对应的taid 属性类型                 获得指定的字段
			$specAll[$k]['opt']=K("GoodsAttr")->where("gid={$gid} AND taid={$taid}")->getField("gaid,gtvalue",true);
		}
		$this->assign('specAll',$specAll);
		//p($specAll);
		//2获取货品列表的数据
		$goodsListData=K('GoodsList')->where("gid={$gid}")->all();
		//p($goodsListData);
		foreach ($goodsListData as $k => $v) {
			//商品属性表中gaid就是循环出来的它的下标本身压成数字也就是gaid，
			$gaid=$v['combine'];
			//重新压一个下标，查询商品属性表，条件就是把主键按循序排列，获得指定字段第一个是把主键传进去
			$goodsListData[$k]['com']=K('GoodsAttr')->where("gaid IN ($gaid)")->getField("gaid,gtvalue",true);
		}
		//p($goodsListData);
		$this->assign('goodsListData',$goodsListData);
        $this->display(); 
    }

    
	
	/*
	 * 添加
	 * */
	public function add(){
		if(IS_POST){
			//p(Q("post."));
			if(!$this->model->addGoodsList()) $this->error($this->model->error);
			$this->success('添加成功');
		}
		
	}
	/*
	 * 编辑
	 * */
	
	public function edit(){
		if(IS_POST){
			//p(Q("post."));
			if(!$this->model->editGoodsList()) $this->error($this->model->error);
			$this->success('修改成功');
		}
		$glid=Q('get.glid',0,'intval');
		//查询商品的类型属性
		//头部循环
		$gid=Q('get.gid',0,'intval');
		$specAll=M()->join('__goods__ g JOIN __type_attr__ ta ON g.tid=ta.tid')->where("gid={$gid} AND taclass=1")->all();
		//这个没有用了 本来是一开始调下拉框的数据开始***
		foreach ($specAll as $k => $v) {
			$taid=$v['taid'];
			//重新获取下拉框需要的东西，给压一个下标   找到商品对应的taid 属性类型                 获得指定的字段
			$specAll[$k]['opt']=K("GoodsAttr")->where("gid={$gid} AND taid={$taid}")->getField("gaid,gtvalue",true);
		}
		//这个没有用了 本来是一开始调下拉框的数据结束***
		$this->assign('specAll',$specAll);
		//p($specAll);
		
		//查询旧数据,根据它的glid去判断对应的数据
		$oldData=K('GoodsList')->where("glid={$glid}")->all();
		//p($oldData);
		foreach ($oldData as $k => $v) {
			//商品属性表中gaid就是循环出来的它的下标本身压成数字也就是gaid，
			$gaid=$v['combine'];
			//重新压一个下标，查询商品属性表，条件就是把主键按循序排列，获得指定字段第一个是把主键传进去
			$oldData[$k]['com']=K('GoodsAttr')->where("gaid IN ($gaid)")->getField("gaid,gtvalue",true);
		}
		$this->assign('oldData',$oldData);
		//p($oldData);
	    $this->display();
	}
	
	/*
	 * 删除
	 * */
	
	public function del(){
		$glid=Q('get.glid',0,'intval');
		//$gid=Q('get.gid',0,'intval');
		M('goods_list')->where("glid={$glid}")->delete();
		$this->success('删除成功');
	}
	
	/**
	 * 异步检测货品是否已存在
	 */
	public function check(){
		//获得商品的gid和规格组合gtid
		$gid=intval($_GET['gid']);
		$combine=implode(',', $_GET['spec']);
		$count=$this->model->where("gid={$gid} AND combine='{$combine}'")->count();
		 // 如果选择的规格,在goods_list中没有，即没有统计时为0，统计到了为1
        if($count){
        	echo 0;
			die;
        }else{
        	echo 1;
			die;
        }
		
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
 }
 
 
 
 
 
 
 
 
 
 
 





































 ?>